package exception;

/**
 * finally块
 * finally块是异常处理机制中最后一块,它可以直接跟在try语句块之后,或者最后一个catch之后
 * finally块特点:
 * 只要程序可以执行到try语句块中,无论是否出现异常,都会最终执行finally块中的内容.
 * 因此我们会将一些必须要执行的内容比如:资源的释放等操作放在finally块中确保执行
 */
public class FinallyDemo {
    public static void main(String[] args) {
        System.out.println("程序开始了!");
        //选中要包裹的代码,然后crtl+alt+T,选择try/catch
        try {
            //此处一定有空指针异常
            String str = null;
            System.out.println(str.length());
            return;//程序执行到return会直接结束方法
        } catch (Exception e) {
            System.out.println("出错了!");
        } finally {//只要程序走到try中,此部分代码一定执行
            System.out.println("finally中的代码执行了!");
        }
        System.out.println("程序结束了");
    }
}
